// 箭头函数

// function add(num) {
//     return num + 1
// }

const add = i => i + 1 // 箭头函数
// 如果箭头函数只有一行，则默认返回，不用包裹大括号，如果有花括号，是多行语句，需要手动返回数据
console.log(add(100))


// 筛选出所有的奇数
const arr = [1,2,3,4,5,6,7,8,9]
const res = arr.filter(i => i % 2)
console.log(res)



// 箭头函数 this的指向问题

const obj = {
    name: 'Alice',
    sayHi: function() {
        console.log(`Hi, I am ${this.name}`)
    },
    sayHiAsync: function() {
        // setTimeout(function(){ // 这里如果用以前的函数方式，是要被放在全局执行的，所有this是全局变量
        //     // 如果用箭头函数，this是不会改变的，一直是定义时的this指向
        //     console.log(this.name)
        // }, 1000)
        // undefined

        setTimeout(()=>{
            console.log(this.name)
        })
        // Alice
    }
}
// obj.sayHi()
obj.sayHiAsync()